import { fileURLToPath, URL } from 'node:url'
import { defineConfig } from 'vite'
import vue from '@vitejs/plugin-vue'
import AutoImport from 'unplugin-auto-import/vite'
import Components from 'unplugin-vue-components/vite'
import { VueAmapResolver } from '@vuemap/unplugin-resolver'

// https://vitejs.dev/config/
export default defineConfig({

  plugins: [
    vue(),
    AutoImport({
      resolvers: [VueAmapResolver()], // 自动导入 VueAMap 组件
    }),
    Components({
      resolvers: [VueAmapResolver()], // 自动注册 VueAMap 组件
    }),
  ],
  resolve: {
    alias: {
      '@': fileURLToPath(new URL('./src', import.meta.url)), // 配置路径别名
      '@fonts': fileURLToPath(new URL('./src/assets/fonts', import.meta.url)), // 添加字体路径别名
    },
    // 忽略后缀名的配置选项, 添加 .vue 选项时要记得原本默认忽略的选项也要手动写入
    extensions: ['.mjs', '.js', '.ts', '.jsx', '.tsx', '.json', '.vue']
  },
  server: {
    port: 5173, // 开发服务器端口号
    host: '127.0.0.1',
    strictPort: true,
    hmr: {
      protocol: 'ws',
      host: '127.0.0.1',
      port: 5173,
      clientPort: 5173
    },
    watch: {
      usePolling: true
    },
    proxy: {
      '/api': {
        target: 'http://172.17.91.81:5703', // 代理目标地址
        changeOrigin: true, // 允许跨域
        secure: false, // 如果目标是 HTTPS 协议，且没有证书
      },
      '/temp': {
        target: 'http://172.17.80.2:9091', // 代理目标地址
        changeOrigin: true, // 允许跨域
        secure: false, // 如果目标是 HTTPS 协议，且没有证书
      },
      '/reqstart.zsj': {
        target: 'http://172.17.80.2:9093', // 代理目标地址
        changeOrigin: true, // 允许跨域
        secure: false, // 如果目标是 HTTPS 协议，且没有证书
      },
      '/timevideolist': {
        target: 'http://172.17.80.2:9094', // 代理目标地址
        changeOrigin: true, // 允许跨域
        secure: false, // 如果目标是 HTTPS 协议，且没有证书
      },
      '/test1': {
        target: 'http://172.17.80.2:5050', // 代理目标地址
        changeOrigin: true, // 允许跨域
        secure: false, // 如果目标是 HTTPS 协议，且没有证书
      },
      '/stm':{
        target: 'http://172.17.80.2:9096', // 代理目标地址
        changeOrigin: true, // 允许跨域
        secure: false, // 如果目标是 HTTPS 协议，且没有证书
      },
      '/blocktest':{
        target: 'http://172.17.91.81:9095', // 代理目标地址
        changeOrigin: true, // 允许跨域
        secure: false, // 如果目标是 HTTPS 协议，且没有证书
      }
    },
  },
  build: {
    rollupOptions: {
      output: {
        manualChunks: {
          vue: ['vue'], // 将 Vue 单独打包
        },
      },
    },
  },
})
